Update myvideo plugin.
Index: xvst-2.4.1/resources/services/myvideo/myvideo.js
===================================================================
--- xvst-2.4.1.orig/resources/services/myvideo/myvideo.js	2011-10-15 22:31:29.502370150 +0200
+++ xvst-2.4.1/resources/services/myvideo/myvideo.js	2011-10-15 22:31:42.338370040 +0200
@@ -1,179 +1,179 @@
-/*
-*
-* This file is part of xVideoServiceThief,
-* an open-source cross-platform Video service download
-*
-* Copyright (C) 2007 - 2009 Xesc & Technology
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with xVideoServiceThief. If not, see <http://www.gnu.org/licenses/>.
-*
-* Contact e-mail: Xesc <xeskuu.xvst@gmail.com>
-* Program URL   : http://xviservicethief.sourceforge.net/
-*
-*/
-
-function RegistVideoService()
-{
-	this.version = "2.0.0";
-	this.minVersion = "2.0.0a";
-	this.author = "Xesc & Technology 2009";
-	this.website = "http://www.myvideo.de/";
-	this.ID = "myvideo.de";
-	this.caption = "MyVideo";
-	this.adultContent = false;
-	this.musicSite = false;
-}
-
-function getVideoInformation(url)
-{
-	const URL_FLV = "%1/%2.flv";
-	// video information
-	var result = new VideoDefinition();
-	// download webpage
-	var http = new Http();
-	var html = http.downloadWebpage(url);
-	// get the flv url and params
-	var path = copyBetween(html, "<link rel='image_src' href='", "/thumbs");
-	var vidId = copyBetween(html, path + "/thumbs/", "_");
-	// get the video title
-	result.title = copyBetween(html, "entry-title'>", "</a>");
-	// build final url
-	result.URL = strFormat(URL_FLV, path, vidId);
-	// get cookies
-	result.cookies = http.getCookies("|");
-	// return the video information
-	return result;
-}
-
-function searchVideos(keyWord, pageIndex)
-{
-	const URL_SEARCH = "http://www.myvideo.de/Videos_A-Z?lpage=%2&searchWord=%1&searchOrder=0";
-	const HTML_SEARCH_START = "<table class='body sCenter vl_newMargin'>"; //'<div class="lBox lLeftBox globalBxBorder globalBx video_list">';
-	const HTML_SEARCH_FINISH = '</table>'; //"</body>";
-	const HTML_SEARCH_SEPARATOR = "<td class='body sTLeft hslice entry-content vCont' id='slice_";
-	// replace all spaces for "+"
-	keyWord = strReplace(keyWord, " ", "+");
-	// init search results object
-	var searchResults = new SearchResults();
-	// init http object
-	var http = new Http();
-	var html = http.downloadWebpage(strFormat(URL_SEARCH, keyWord, pageIndex, searchResults.getUserLanguage()));
-	// get the search summary
-	var tmp = copyBetween(html, '<td> Dein Ergebnis', '</td>');
-	var summary = "Dein Ergebnis" + copyBetween(tmp, "<span class='sWord'>", "'");
-	var tmp = copyBetween(html, "<span class='pView pnPages'>", "</span>");
-	var summary = summary + " " + tmp
-	var tmp = copyBetween(html, "<span class='pView pnResults'>", "</span>");
-	var summary = summary + " " + tmp
-	searchResults.setSummary(summary);
-	// get results html block
-	var htmlResults = copyBetween(html, HTML_SEARCH_START, HTML_SEARCH_FINISH);
-	// if we found some results then...
-	if (htmlResults != "")
-	{
-		var block = "";
-		// iterate over results
-		while ((block = copyBetween(htmlResults, HTML_SEARCH_SEPARATOR, HTML_SEARCH_SEPARATOR)) != "")
-		{
-			parseResultItem(searchResults, block);
-			htmlResults = strRemove(htmlResults, 0, block.toString().length);
-		}
-		// get last result
-		parseResultItem(searchResults, htmlResults);
-	}
-	// return search results
-	return searchResults;
-}
-
-function parseResultItem(searchResults, html)
-{
-	const VIDEO_URL = "http://www.myvideo.de";
-	// vars
-	var tmp, videoUrl, imageUrl, title, description, duration, rating;
-	// get title and image url
-	tmp = copyBetween(html, "<div class='vThumb'>", '</div>') ;
-	title = copyBetween(tmp, "title='", "'");
-	imageUrl = copyBetween(tmp, "src='", "'");
-	// get video url
-	videoUrl = VIDEO_URL + copyBetween(tmp, "href='", "'");
-	//if (strIndexOf(imageUrl, "default.jpg") == -1) // if is not a "default.jpg"...
-	//	imageUrl = copyBetween(tmp, 'thumb="', '"');
-	// get video description
-	tmp = copyBetween(html, "<div class='sCenter vTitle'>", '</div>') ;
-	description = copyBetween(tmp, "<span class='hidden'>", '</span>');
-	// get video duration
-	tmp = copyBetween(html, ' Lnge ', '/span>');
-	duration = convertToSeconds(copyBetween(tmp, "> ", '<'));
-	// get rating
-	rating = getrating(copyBetween(html, 'ratingBox', '</div>'));
-	// add to results list
-	searchResults.addSearchResult(videoUrl, imageUrl, title, description, duration, rating);
-}
-
-function getrating(text)
-{
-	var rating = 0
-	var i = 1
-	while (i < 6)
-	{
-		var part = getToken(text, '<img',i);
-		if (strIndexOf(part,"m_star_red_0.gif") != -1)
-		{
-			rating = rating + 1
-		}
-		if (strIndexOf(part,"m_star_half_0.gif") != -1)
-		{
-			rating = rating + 0.5
-		}
-		i++
-	}
-	return rating;
-}
-
-function convertToSeconds(text)
-{
-	// how many ":" exists?
-	var count = getTokenCount(text, ":");
-	// get mins and seconds
-	var h = new Number(h = count == 3 ? getToken(text, ":", 0) * 3600 : 0);
-	var m = new Number(getToken(text, ":", count - 2) * 60);
-	var s = new Number(getToken(text, ":", count - 1));
-	// convert h:m:s to seconds
-	return h + m + s;
-}
-
-function getVideoServiceIcon()
-{
-	return new Array(
-		0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
-		0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x03,0x00,0x00,0x00,0x28,0x2d,0x0f,
-		0x53,0x00,0x00,0x00,0x66,0x50,0x4c,0x54,0x45,0x3d,0x88,0xe5,0x49,0x8f,0xe7,0x55,
-		0x97,0xe8,0x61,0x9e,0xea,0x62,0x9e,0xea,0x6e,0xa6,0xec,0x7a,0xad,0xed,0x85,0xb5,
-		0xee,0x86,0xb5,0xef,0x92,0xbc,0xf0,0x9e,0xc3,0xf2,0x9e,0xc4,0xf2,0xaa,0xcb,0xf4,
-		0xb6,0xd2,0xf5,0xc2,0xda,0xf7,0xce,0xe1,0xf8,0xda,0xe9,0xfa,0xdb,0xe9,0xfa,0xe7,
-		0xf0,0xfc,0xf3,0xf8,0xfd,0xff,0x66,0x00,0xff,0x70,0x10,0xff,0x79,0x20,0xff,0x8c,
-		0x40,0xff,0x96,0x50,0xff,0x9f,0x60,0xff,0xb3,0x80,0xff,0xbc,0x8f,0xff,0xc6,0x9f,
-		0xff,0xcf,0xaf,0xff,0xd9,0xbf,0xff,0xec,0xe0,0xff,0xf5,0xef,0xff,0xff,0xff,0x48,
-		0xd7,0xaa,0x42,0x00,0x00,0x00,0x8c,0x49,0x44,0x41,0x54,0x18,0x19,0x05,0xc1,0x09,
-		0x42,0xc2,0x30,0x14,0x05,0xc0,0x17,0x4a,0x2b,0x01,0x0a,0x4a,0x3e,0x54,0x71,0x9d,
-		0xfb,0x5f,0xd2,0x99,0x60,0xf4,0x96,0x76,0x1c,0x40,0x18,0xfb,0xec,0xfa,0x69,0xda,
-		0x0f,0x10,0x96,0x2c,0xe3,0x36,0xac,0x0b,0x88,0xd7,0xec,0xc6,0x5b,0x47,0xbf,0x42,
-		0xf4,0x9c,0x2d,0xc3,0xb7,0x71,0x80,0x98,0x73,0x33,0xb3,0x3d,0x7e,0x4e,0x10,0x2d,
-		0xec,0xd8,0xaa,0xde,0x7f,0x11,0x09,0xad,0xdb,0xaa,0xea,0xfe,0x49,0x24,0xf4,0xd8,
-		0xaa,0xaa,0xea,0x43,0xcc,0xb9,0x19,0x93,0xad,0xaa,0x1e,0x5f,0xc4,0x21,0x2b,0x6c,
-		0x75,0x7f,0x42,0xac,0x99,0x61,0x7b,0xfe,0xbd,0x40,0x8c,0x96,0x0b,0x38,0x1f,0x21,
-		0x9c,0xd3,0x2e,0x58,0xdb,0x80,0xe0,0x90,0x4c,0xf3,0x94,0x0b,0x08,0x1c,0x5b,0xb2,
-		0xbf,0x02,0xff,0xae,0x67,0x16,0x49,0x16,0x8a,0x4e,0x0f,0x00,0x00,0x00,0x00,0x49,
-		0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
-}
+/*
+*
+* This file is part of xVideoServiceThief,
+* an open-source cross-platform Video service download
+*
+* Copyright (C) 2007 - 2009 Xesc & Technology
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with xVideoServiceThief. If not, see <http://www.gnu.org/licenses/>.
+*
+* Contact e-mail: Xesc <xeskuu.xvst@gmail.com>
+* Program URL   : http://xviservicethief.sourceforge.net/
+*
+*/
+
+function RegistVideoService()
+{
+	this.version = "2.0.1";
+	this.minVersion = "2.0.0a";
+	this.author = "Xesc & Technology 2009";
+	this.website = "http://www.myvideo.de/";
+	this.ID = "myvideo.de";
+	this.caption = "MyVideo";
+	this.adultContent = false;
+	this.musicSite = false;
+}
+
+function getVideoInformation(url)
+{
+	const URL_FLV = "%1/%2.flv";
+	// video information
+	var result = new VideoDefinition();
+	// download webpage
+	var http = new Http();
+	var html = http.downloadWebpage(url);
+	// get the flv url and params
+	var path = copyBetween(html, "<link rel='image_src' href='", "/thumbs");
+	var vidId = copyBetween(html, path + "/thumbs/", "_");
+	// get the video title
+	result.title = copyBetween(html, "<h1 class='globalHd'>", "</h1>");
+	// build final url
+	result.URL = strFormat(URL_FLV, path, vidId);
+	// get cookies
+	result.cookies = http.getCookies("|");
+	// return the video information
+	return result;
+}
+
+function searchVideos(keyWord, pageIndex)
+{
+	const URL_SEARCH = "http://www.myvideo.de/Videos_A-Z?lpage=%2&searchWord=%1&searchOrder=0";
+	const HTML_SEARCH_START = "<table class='body sCenter vl_newMargin'>"; //'<div class="lBox lLeftBox globalBxBorder globalBx video_list">';
+	const HTML_SEARCH_FINISH = '</table>'; //"</body>";
+	const HTML_SEARCH_SEPARATOR = "<td class='body sTLeft hslice entry-content vCont' id='slice_";
+	// replace all spaces for "+"
+	keyWord = strReplace(keyWord, " ", "+");
+	// init search results object
+	var searchResults = new SearchResults();
+	// init http object
+	var http = new Http();
+	var html = http.downloadWebpage(strFormat(URL_SEARCH, keyWord, pageIndex, searchResults.getUserLanguage()));
+	// get the search summary
+	var tmp = copyBetween(html, '<td> Dein Ergebnis', '</td>');
+	var summary = "Dein Ergebnis" + copyBetween(tmp, "<span class='sWord'>", "'");
+	var tmp = copyBetween(html, "<span class='pView pnPages'>", "</span>");
+	var summary = summary + " " + tmp
+	var tmp = copyBetween(html, "<span class='pView pnResults'>", "</span>");
+	var summary = summary + " " + tmp
+	searchResults.setSummary(summary);
+	// get results html block
+	var htmlResults = copyBetween(html, HTML_SEARCH_START, HTML_SEARCH_FINISH);
+	// if we found some results then...
+	if (htmlResults != "")
+	{
+		var block = "";
+		// iterate over results
+		while ((block = copyBetween(htmlResults, HTML_SEARCH_SEPARATOR, HTML_SEARCH_SEPARATOR)) != "")
+		{
+			parseResultItem(searchResults, block);
+			htmlResults = strRemove(htmlResults, 0, block.toString().length);
+		}
+		// get last result
+		parseResultItem(searchResults, htmlResults);
+	}
+	// return search results
+	return searchResults;
+}
+
+function parseResultItem(searchResults, html)
+{
+	const VIDEO_URL = "http://www.myvideo.de";
+	// vars
+	var tmp, videoUrl, imageUrl, title, description, duration, rating;
+	// get title and image url
+	tmp = copyBetween(html, "<div class='vThumb'>", '</div>') ;
+	title = copyBetween(tmp, "title='", "'");
+	imageUrl = copyBetween(tmp, "src='", "'");
+	// get video url
+	videoUrl = VIDEO_URL + copyBetween(tmp, "href='", "'");
+	//if (strIndexOf(imageUrl, "default.jpg") == -1) // if is not a "default.jpg"...
+	//	imageUrl = copyBetween(tmp, 'thumb="', '"');
+	// get video description
+	tmp = copyBetween(html, "<div class='sCenter vTitle'>", '</div>') ;
+	description = copyBetween(tmp, "<span class='hidden'>", '</span>');
+	// get video duration
+	tmp = copyBetween(html, ' Lnge ', '/span>');
+	duration = convertToSeconds(copyBetween(tmp, "> ", '<'));
+	// get rating
+	rating = getrating(copyBetween(html, 'ratingBox', '</div>'));
+	// add to results list
+	searchResults.addSearchResult(videoUrl, imageUrl, title, description, duration, rating);
+}
+
+function getrating(text)
+{
+	var rating = 0
+	var i = 1
+	while (i < 6)
+	{
+		var part = getToken(text, '<img',i);
+		if (strIndexOf(part,"m_star_red_0.gif") != -1)
+		{
+			rating = rating + 1
+		}
+		if (strIndexOf(part,"m_star_half_0.gif") != -1)
+		{
+			rating = rating + 0.5
+		}
+		i++
+	}
+	return rating;
+}
+
+function convertToSeconds(text)
+{
+	// how many ":" exists?
+	var count = getTokenCount(text, ":");
+	// get mins and seconds
+	var h = new Number(h = count == 3 ? getToken(text, ":", 0) * 3600 : 0);
+	var m = new Number(getToken(text, ":", count - 2) * 60);
+	var s = new Number(getToken(text, ":", count - 1));
+	// convert h:m:s to seconds
+	return h + m + s;
+}
+
+function getVideoServiceIcon()
+{
+	return new Array(
+		0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
+		0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x08,0x03,0x00,0x00,0x00,0x28,0x2d,0x0f,
+		0x53,0x00,0x00,0x00,0x66,0x50,0x4c,0x54,0x45,0x3d,0x88,0xe5,0x49,0x8f,0xe7,0x55,
+		0x97,0xe8,0x61,0x9e,0xea,0x62,0x9e,0xea,0x6e,0xa6,0xec,0x7a,0xad,0xed,0x85,0xb5,
+		0xee,0x86,0xb5,0xef,0x92,0xbc,0xf0,0x9e,0xc3,0xf2,0x9e,0xc4,0xf2,0xaa,0xcb,0xf4,
+		0xb6,0xd2,0xf5,0xc2,0xda,0xf7,0xce,0xe1,0xf8,0xda,0xe9,0xfa,0xdb,0xe9,0xfa,0xe7,
+		0xf0,0xfc,0xf3,0xf8,0xfd,0xff,0x66,0x00,0xff,0x70,0x10,0xff,0x79,0x20,0xff,0x8c,
+		0x40,0xff,0x96,0x50,0xff,0x9f,0x60,0xff,0xb3,0x80,0xff,0xbc,0x8f,0xff,0xc6,0x9f,
+		0xff,0xcf,0xaf,0xff,0xd9,0xbf,0xff,0xec,0xe0,0xff,0xf5,0xef,0xff,0xff,0xff,0x48,
+		0xd7,0xaa,0x42,0x00,0x00,0x00,0x8c,0x49,0x44,0x41,0x54,0x18,0x19,0x05,0xc1,0x09,
+		0x42,0xc2,0x30,0x14,0x05,0xc0,0x17,0x4a,0x2b,0x01,0x0a,0x4a,0x3e,0x54,0x71,0x9d,
+		0xfb,0x5f,0xd2,0x99,0x60,0xf4,0x96,0x76,0x1c,0x40,0x18,0xfb,0xec,0xfa,0x69,0xda,
+		0x0f,0x10,0x96,0x2c,0xe3,0x36,0xac,0x0b,0x88,0xd7,0xec,0xc6,0x5b,0x47,0xbf,0x42,
+		0xf4,0x9c,0x2d,0xc3,0xb7,0x71,0x80,0x98,0x73,0x33,0xb3,0x3d,0x7e,0x4e,0x10,0x2d,
+		0xec,0xd8,0xaa,0xde,0x7f,0x11,0x09,0xad,0xdb,0xaa,0xea,0xfe,0x49,0x24,0xf4,0xd8,
+		0xaa,0xaa,0xea,0x43,0xcc,0xb9,0x19,0x93,0xad,0xaa,0x1e,0x5f,0xc4,0x21,0x2b,0x6c,
+		0x75,0x7f,0x42,0xac,0x99,0x61,0x7b,0xfe,0xbd,0x40,0x8c,0x96,0x0b,0x38,0x1f,0x21,
+		0x9c,0xd3,0x2e,0x58,0xdb,0x80,0xe0,0x90,0x4c,0xf3,0x94,0x0b,0x08,0x1c,0x5b,0xb2,
+		0xbf,0x02,0xff,0xae,0x67,0x16,0x49,0x16,0x8a,0x4e,0x0f,0x00,0x00,0x00,0x00,0x49,
+		0x45,0x4e,0x44,0xae,0x42,0x60,0x82);
+}
